home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 1 / Gekikoh Dennoh Club Vol. 1 (Japan).7z / Gekikoh Dennoh Club Vol. 1 (Japan) (Track 1).bin / tools / xb / fncsrc / spdef.has < prev   
Text File  |  1995-06-03  |  3KB  |  186 lines

  1.     .include    doscall.mac
  2.     .include    iocscall.mac
  3.     .include    fdef.h
  4.  
  5.     .dc.l    ret0
  6.     .dc.l    ret0
  7.     .dc.l    ret0
  8.     .dc.l    ret0
  9.     .dc.l    ret0
  10.     .dc.l    ret0
  11.     .dc.l    ret0
  12.     .dc.l    ret0
  13.     .dc.l    ptr_token
  14.     .dc.l    ptr_param
  15.     .dc.l    ptr_exec
  16.     .dc.l    0,0,0,0,0
  17.  
  18. ptr_token:
  19.     .dc.b    'spfile_def',0
  20.     .dc.b    'palfile_def',0
  21.     .dc.b    0
  22.  
  23.     .even
  24. ptr_param:
  25.     .dc.l    p_sp_def
  26.     .dc.l    p_pal_def
  27.  
  28. *-------------------
  29. p_sp_def:
  30. p_pal_def:
  31.     .dc.w    str_val
  32.     .dc.w    int_val
  33.     .dc.w    int_ret
  34.  
  35. *-------------------
  36. ptr_exec:
  37.     .dc.l    e_sp_def
  38.     .dc.l    e_pal_def
  39.  
  40. ******************************
  41.  
  42. SP_PTR        equ    $eb8000
  43. SP_PTR_END    equ    $ec0000
  44. PAL_PTR        equ    $e82200
  45. PAL_PTR_END    equ    $e82400
  46.  
  47. ******************************
  48.  
  49. e_sp_def:
  50.     clr.l    -(sp)
  51.     DOS    _SUPER
  52.     move.l    d0,(sp)
  53.     link    a6,#-$80
  54.  
  55.     bsr    sp_check
  56.     bmi    screen_mode_err
  57.  
  58.     move.l    8+par2+6(a6),d1
  59.  
  60. *    move.l    #$100-1,d2
  61.     moveq    #0,d2
  62.     subq.b    #1,d2        * $000000ff
  63.     sub.l    d1,d2
  64.     bcs    para_err
  65.     lea.l    SP_PTR,a1
  66.     lsl.l    #7,d1
  67.     add.l    d1,a1
  68.  
  69.     clr.w    -(sp)
  70.     move.l    8+par1+6(a6),-(sp)
  71.     DOS    _OPEN
  72.     tst.l    d0
  73.     bmi    no_file_err
  74.  
  75.     lea.l    -$80(a6),a2
  76.     moveq    #$80/4-1,d1
  77.     move.l    #$80,-(sp)
  78.     bra    sub
  79.  
  80. *-------------------------
  81.  
  82. e_pal_def:
  83.     clr.l    -(sp)
  84.     DOS    _SUPER
  85.     move.l    d0,(sp)
  86.     link    a6,#-$20
  87.  
  88.     bsr    sp_check
  89.     bmi    screen_mode_err
  90.  
  91.     move.l    8+par2+6(a6),d1
  92.  
  93.     moveq.l    #$10-1,d2
  94.     sub.l    d1,d2
  95.     bcs    para_err
  96.     lea.l    PAL_PTR,a1
  97.     lsl.l    #5,d1
  98.     add.l    d1,a1
  99.  
  100.     clr.w    -(sp)
  101.     move.l    8+par1+6(a6),-(sp)
  102.     DOS    _OPEN
  103.     tst.l    d0
  104.     bmi    no_file_err
  105.  
  106.     lea.l    -$20(a6),a2
  107.     moveq    #$20/4-1,d1
  108.     move.l    #$20,-(sp)
  109.  
  110.  
  111. sub:
  112.     move.l    a2,-(sp)
  113.     move.w    d0,-(sp)
  114. 1:
  115.     DOS    _READ
  116.     tst.l    d0
  117.     ble    2f
  118.  
  119.     movea.l    a2,a0
  120.     move.w    d1,d0
  121. @@:
  122.     move.l    (a0)+,(a1)+
  123.     dbra    d0,@b
  124.     dbra    d2,1b
  125. 2:
  126.     DOS    _CLOSE
  127.  
  128.  
  129.  
  130. *-------------------------
  131. return_zero:
  132.     moveq.l    #0,d0
  133. return_d0:
  134.     lea.l    fac(pc),a0
  135.     move.l    d0,6(a0)
  136.     moveq.l    #0,d2
  137. ret:
  138.     unlk    a6
  139.     DOS    _SUPER
  140.     addq.l    #4,sp
  141.     move.l    d2,d0
  142. ret0:
  143.     rts
  144. ****************************
  145.  
  146. screen_mode_err:
  147.     lea.l    screen_mode_err_mes(pc),a1
  148.     moveq.l    #-1,d2
  149.     bra    ret
  150. no_file_err:
  151.     lea.l    no_file_err_mes(pc),a1
  152.     moveq.l    #-2,d2
  153.     bra    ret
  154. para_err:
  155.     lea.l    para_err_mes(pc),a1
  156.     moveq.l    #-3,d2
  157.     bra    ret
  158.  
  159.  
  160. ****************************
  161.  
  162. sp_check:
  163.     moveq.l    #0,d1
  164.     IOCS    _SP_REGGT
  165.     tst.l    d0
  166.     rts
  167.  
  168.  
  169.  
  170.  
  171.  
  172. ****************************
  173. fac:
  174.     .dc.w    0
  175.     .dc.l    0,0
  176.  
  177. screen_mode_err_mes:
  178.     .dc.b    '画面モードが不正です',0
  179. no_file_err_mes:
  180.     .dc.b    'ファイルがありません',0
  181. para_err_mes:
  182.     .dc.b    'パラメータが異常です',0
  183.     .even
  184.  
  185.     .end
  186.